package bancosys.tec.rtm.exception;

import jmine.tec.rtm.ExceptionMonitor;

/**
 * @author Koji
 */
public interface ExceptionPersister extends ExceptionMonitor {

    /**
     * Armazena o erro. Aplicacoes clientes devem preferencialmente chamar o {@link #monitor(Throwable)}
     * 
     * @param exception a excecao a ser armazenada
     * @return registro da exceção.
     * @throws RTMException caso haja alguma excecao
     */
    ExceptionRecord persist(Throwable exception) throws RTMException;

    /**
     * Implementado para limpar o RTM, porém ele continuará armazenando os logs dos dias passados como parâmetro.
     * 
     * @param dias - dias em que o RTM não deverá limpar.
     * @throws RTMException caso haja alguma excecao
     */
    void cleanRTM(int dias) throws RTMException;

}
